The described embodiments generally relate to wireless communications devices and computer networks. More particularly, the described aspects relate to the remote configuration of executable tasks, such as data collection, on a wireless device.
Wireless networking connects one or more wireless devices to other computer devices without a direct connection, such as a copper wire or optical cable. Wireless devices communicate data, typically in the form of packets, across a wireless or partially wireless computer network and open a “data” or “communication” channel on the network such that the device can send and receive data packets. The wireless devices often have wireless device resources, such as programs and hardware components, which individually and cooperatively operate to use and generate data in accordance to their design and specific protocol or configuration, such as using open communication connections to transmit and receive data on the network
The current trend in the wireless communication device industry is to market devices that have a wide range of functionality. For example, a single wireless communication device may be capable of wireless telephone communication, digital photography, wireless Internet communication, electronic mail (email) and/or Short Message Service (SMS) communication, wireless audio and/or video downloading, other wireless network service communications and the like. In addition, the wireless communication device may be capable of storing or wirelessly accessing numerous applications that can then be executed on the wireless communication device.
As the functionality of these devices expands, the device users increasingly demand high performance and reliability. To insure such high performance and reliability, applications are being implemented to monitor performance so that service providers, device manufacturers and the like can respond to problems, or the potential providers, device manufacturers and the like can respond to problems, or the potential for problems, in a timely fashion. Most of these monitoring-type applications require data to be collected at the wireless device and, in many instances, communicated to a network device for subsequent performance analysis. For example, a wireless telephone may log data related to calls or may capture data when an event, such as a “call failure” or a “call drop” occurs.
Currently, applications that require data collection at the wireless device rely on the source code of the application to define what data is collected, how the data is collected and any other parameters related to data collection. Thus, if the user of the application desires to change what data is collected, how the data is collected or any other related parameter, the user must modify the source code and update the applications being implemented on the wireless devices. This becomes a cause for concern because in many of these monitoring-type applications the user will readily desire to make data collection changes based on the monitored performance of the device or the wireless network. In many instances, such as when a service provider is attempting to identify a problem within a device or the network, changes in data collection need to be implemented dynamically, on-the-fly, in order for the service provider to address the problem, or the potential for a problem, in a timely fashion.
As previously noted, the functionality in a wireless device is diverse and, as such, the collectable data may vary from device to device. In this instance, current monitoring-type applications may need to be device-specific in terms of collection code to accommodate the variance in device functionality. Additionally, the computing capability of wireless devices means that the applications and functionality can readily be added and/or removed from the device. As such, devices may be capable of collecting additional, “new” data or, conceivably, may no longer possess the capability of collecting previously stored data. In this instance, monitoring-type applications may require modification of the source code to be able to collect “new” data or modifications to the source code to insure application functionality if previous data is no longer available.
Thus, a need exists to develop a data collection system that provides for dynamic configuration of data collection commands. In this regard, configurable data collection will allow the user to change what data is collected, how data is collected or other data collection related parameters without having to modify the source code of the application that requires data collection. Such a system will provide application users the ability to change data collection on the wireless device dynamically, as dictated by network performance, device performance or the like. Additionally, such a system will allow the application users the ability to tailor data collection based on the data collection functionality of specific wireless devices or the applications currently be executed on the wireless device.